const path = require('path');

function resolve(dir) {
    return path.join(__dirname, dir)
}
module.exports = {
    /** 区分打包环境与开发环境
     * process.env.NODE_ENV==='production'  (打包环境)
     * process.env.NODE_ENV==='development' (开发环境)
     * baseUrl: process.env.NODE_ENV==='production'?"https://cdn.didabisai.com/front/":'front/',//该属性 3.0被废除
     */
    // 基本路径
    publicPath: process.env.NODE_ENV === 'production' ? '/' : '/',
    // publicPath: process.env.NODE_ENV === 'production' ? '这里填打包后引用路径 如/assets/' : '这里填生产环境 一般为 /',
    // 输出文件目录
    outputDir: '../build',
    // outputDir: '打包后的输出路径',
    // eslint-loader 是否在保存的时候检查
    lintOnSave: false,
    // use the full build with in-browser compiler?
    // https://vuejs.org/v2/guide/installation.html#Runtime-Compiler-vs-Runtime-only
    //compiler: false,
    // webpack配置
    // see https://github.com/vuejs/vue-cli/blob/dev/docs/webpack.md
    chainWebpack: (config) => {
        config.resolve.alias
            .set('@', resolve('src'))
            .set('assets', resolve('src/assets'))
    },
    configureWebpack: {
        node: {
            process: true,
        }
    },
    //========================postcss-plugin-px2rem配置
    css: {
        loaderOptions: { // 向 CSS 相关的 loader 传递选项
            less: {
                javascriptEnabled: true
            },
            postcss: {
                plugins: [
                    //启用 
                    // require('postcss-plugin-px2rem')({
                    //     rootValue: 37.5, //换算基数， 默认100  ，这样的话把根标签的字体规定为1rem为50px,这样就可以从设计稿上量出多少个px直接在代码中写多上px了。
                    //     // unitPrecision: 5, //允许REM单位增长到的十进制数字。
                    //     //propWhiteList: [],  //默认值是一个空数组，这意味着禁用白名单并启用所有属性。
                    //     // propBlackList: [], //黑名单
                    //     exclude:false, //默认false，可以（reg）利用正则表达式排除某些文件夹的方法，例如/(node_module)/ 。如果想把前端UI框架内的px也转换成rem，请把此属性设为默认值
                    //     // selectorBlackList: [], //要忽略并保留为px的选择器
                    //     // ignoreIdentifier: false,  //（boolean/string）忽略单个属性的方法，启用ignoreidentifier后，replace将自动设置为true。
                    //     // replace: true, // （布尔值）替换包含REM的规则，而不是添加回退。
                    //     mediaQuery: false, //（布尔值）允许在媒体查询中转换px。
                    //     minPixelValue: 0 //设置要替换的最小像素值(3px会被转rem)。 默认 0
                    // }),
                ]
            }
        }
    },
    //===================================
    // webpack-dev-server 相关配置
    devServer: {
        open: process.platform === 'darwin',
        host: '192.168.20.120',
        port: 9008,
        https: false,
        hotOnly: false,
        proxy: null, // 设置代理
    },
    // 第三方插件配置
    // pluginOptions: {
    //     [["import", {
    //         "libraryName": "iview",
    //         "libraryDirectory": "src/components"
    //       }]]
    //     // ...
    // }
}